Description Dropout으로 local model fine-tuning
핵심 아이디어
현재 연구들은 광범위한 foundation model을 만드는 데 집중하지만, 특정 domain에서만 작동하는 작은 모델을 만들 때는 다른 접근이 유효하다.
도구(tool)를 명시적으로 정의한 뒤, self-supervised 방식으로 description을 점진적으로 제거하면서 학습시키면 → 작은 local model도 특정 업무에서 충분한 성능을 낼 수 있다.
Description Dropout
기존 dropout이 특정 뉴런에 의존하지 않도록 강제하듯, description dropout은 모델이 tool description 텍스트에 의존하지 않도록 강제한다.
모델은 결국 함수 이름과 context의 의미론적 관계를 학습하게 된다.
[easy] 도구 이름 + 상세 description + 예시
[medium] 도구 이름 + 짧은 description
[hard] 도구 이름만
[harder] 도구 이름도 없이 context만
이는 curriculum learning과 결합될 때 더 효과적이다.
Domain-specific overfitting이 오히려 안전한 이유
foundation model → general해야 함 → overfitting 위험 특정 domain 전용 모델 → 해당 domain에서의 overfitting = reliability 상승
Obsidian vault 관리 + 수업 정보 수집 두 가지만 잘하면 되는 경우, 그 domain에 과적합된 모델이 오히려 더 예측 가능하고 안전하다.
실제 구현 시 고려사항
함수 이름 자체가 의미를 담고 있어야 description dropout이 의미있다.
- 좋은 예:
create_note,append_to_vault,search_by_tag - 나쁜 예:
fn_007,handler_3
semantic이 이름에 녹아있을수록 description 없이도 학습이 된다.
학습 순서
- tool calling 데이터를 직접 생성 (명시적 description 포함)
- description dropout curriculum으로 supervised fine-tune
- reward 설계 후 GRPO 등으로 RL fine-tune
- narrow domain에서 평가
연결 아이디어
- 기존 애플리케이션을 environment로 wrapping → chat UI로 converting
- CLI 형태 platform (pi 방식) 에서의 agent 운용
- Obsidian RPC 서버와 결합한 실제 데이터 수집